#pragma warning(disable:4996)
#pragma warning(disable:6031)

#include <iostream>
using namespace std;

class Date
{
public:
	Date(int year = 0, int month = 0, int day = 0)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	bool operator<(const Date& d)
	{
		if (_year < d._year)
		{
			return true;
		}
		else if (_year == d._year && _month < d._month)
		{
			return true;
		}
		else if (_year == d._year && d._month == _month && _day < d._day)
		{
			return true;
		}
		return false;
	}
private:
	int _year;
	int _month;
	int _day;
};

int main()
{
	Date d1(2024, 8, 1);
	Date d2(2024, 8, 2);
	bool ret = d1.operator<(d2);
	bool ret2 = d1 < d2;
	cout << ret << endl;
	return 0;
}

//class xxx
//{
//public:
//	xxx()
//	{
//		a = b = 80;
//	}
//	xxx(xxx& x)
//	{
//		a = x.a;
//		b = x.b;
//	}
//	//~xxx()
//	//{
//
//	//}
//	void Print()
//	{
//		cout << a << b << endl;
//	}
//private:
//	int a;
//	char b;
//};
//
//int main()
//{
//	xxx m;
//	xxx n(m);
//	xxx k = m;
//	return 0;
//}
//class A
//{
//public:
//	void Print()
//	{
//		cout << "A::Print()" << endl;
//		cout << _a << endl;
//	}
//private:
//	int _a;
//};
//
//int main()
//{
//	A* p = nullptr;
//	p->Print();
//	return 0;
//}

//int main()
//{
//	xxx x;
//	x.Print();
//	return 0;
//}